﻿using System;

namespace Cpuss
{
    /// <summary>
    /// Data associated with <see cref="Runner.Started"/>.
    /// </summary>
    public class RunnerStartedEventArgs : EventArgs
    {
        private readonly int _processCount;
        private readonly IStrategy _strategy;

        /// <summary>
        /// Initializes a new instance of <see cref="RunnerStartedEventArgs"/>.
        /// </summary>
        /// <param name="processCount">Number of processes in simulation.</param>
        /// <param name="strategy">Strategy being used in simulation.</param>
        public RunnerStartedEventArgs(int processCount, IStrategy strategy)
        {
            _processCount = processCount;
            _strategy = strategy;
        }

        /// <summary>
        /// Gets the total number of processes being executed in the simulation.
        /// </summary>
        public int ProcessCount
        {
            get { return _processCount; }
        }

        /// <summary>
        /// Gets the <see cref="IStrategy"/> being used by the simulation.
        /// </summary>
        public IStrategy Strategy
        {
            get { return _strategy; }
        }
    }
}